
package net.qiqbframework.modelling.command;


import net.qiqbframework.messaging.annotation.MessageHandler;
import net.qiqbframework.modelling.command.handling.BusinessMessage;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 可以通过命令方法标记此注解，在获取聚合对象后执行。
 */
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@MessageHandler(messageType = BusinessMessage.class)
public @interface BizHandler {
    /**
     * 此命令处理器执行指定的名称。默认为有效负载类型的完全限定类名（即第一个参数）。
     *
     * @return 命令名称
     */
    String commandName() default "";
}
